package com.yanyuhao.common;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

//跨域配置
//代码作用类比
//想象你开了一家 奶茶店，但只允许 特定区域的顾客 进入。CORS 配置就像 店门口的安检员，决定哪些请求（顾客）能访问你的接口（奶茶）。

// 声明这是一个配置类
@Configuration
public class CorsConfig {

    @Bean //注册为 Spring Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        corsConfiguration.addAllowedOrigin("*");//1 设置访问源地址 允许所有来源
        corsConfiguration.addAllowedHeader("*");//2 设置访问源请求头 允许所有请求头
        corsConfiguration.addAllowedMethod("*");//3 设置访问源请求方法 允许所有请求方法（如允许 GET/POST/PUT 等所有操作）
        source.registerCorsConfiguration("/**", corsConfiguration);// 对所有接口生效
        return new CorsFilter(source);
    }
}
